package com.javabase;

/**
 * @Description: java类作用描述
 * @Author: Bsea
 * @CreateDate: 2019/6/14$ 21:00$
 */
public class ConstroctTest {
    // 成员变量，声明并且赋值
    private static ConstroctTest test = new ConstroctTest();
    //静态变量sta1    未赋予初始值
    public static int sta1;
    //静态变量sta1    赋予初始值20
    public static int sta2 = 20;
    //构造方法中对于静态变量赋值
    private ConstroctTest() {
        sta1 ++ ;
        sta2 ++ ;
        System.out.println("构造方法里面sta1=="+sta1);
        System.out.println("构造方法里面sta2=="+sta2);
    }
    public static void main(String[] args) {
        //1, 静态变量的赋值一定比构造方法先执行
        //2，如果都是静态变量，按照顺序执行
        //3,  基本类型，没有初始化的时候，会有默认值
        //4， 这个类一共有三个静态变量（按代码顺序：test,stat1,stat2）
        //5. 在给静态变量test赋值的时候，会需要调用构造方法
        //这个时候，构造方法把stat1变成了1，stat2也变成了1
        //6, test，赋值完成以后stat1，stat1都是1
        //7. public static int sta1;这里只声明，没有赋值所以没
        //有改变sta1的值
        //8.public static int sta2 = 20;做了赋值运算
        //把sta2从1变成了20
        System.out.println(ConstroctTest.sta1);//1
        System.out.println(ConstroctTest.sta2);//20
    }
}
